package ogloszenia.widok;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.faces.event.AjaxBehaviorEvent;
import javax.faces.model.SelectItem;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.PersistenceUtil;
//import javax.validation.constraints.Pattern;

import ogloszenia.bazadanych.ZsmOgloszenie;
import ogloszenia.bazadanych.bazadanych;
import ogloszenia.nawigacja.popuppanel;

public class zgloszenie extends classbase implements Serializable {

	private static final long serialVersionUID = 1L;
	// @Pattern(regexp="[A-Z]?",message="ssss")
	private String wartosc;
	private ogloszenie ogl = new ogloszenie();
	public static String zmienna,
			etykieta_przycisku = "Wybierz województwo i miasto";
	private static int wa = 1;
	private boolean disablea, disableb, disablec, checkboxa, checkboxb,
			checkboxc;

	public boolean isDisablea() {
		setDisablea(cc(1));
		return disablea;
	}

	public void setDisablea(boolean disablea) {
		this.disablea = disablea;
	}

	public boolean isDisableb() {
		setDisableb(cc(2));
		return disableb;
	}

	public void setDisableb(boolean disableb) {
		this.disableb = disableb;
	}

	public boolean isDisablec() {
		setDisablec(cc(3));
		return disablec;
	}

	public void setDisablec(boolean disablec) {
		this.disablec = disablec;
	}

	void ff(boolean a, boolean b, boolean c) {
		setCheckboxa(a);
		setCheckboxb(b);
		setCheckboxc(c);
	}

	boolean cc(int y) {
		if (y == Integer.valueOf(numerogloszenia))
			return true;
		else
			return false;

	}

	public void ustaw(int param) {
		switch (param) {
		case 1:
			ff(true, false, false);
			break;
		case 2:
			ff(false, true, false);
			break;
		case 3:
			ff(false, false, true);
			break;
		}
		System.out.println(checkboxa + " " + checkboxb + " " + checkboxc);
	}

	void f() {
		switch (Integer.valueOf(numerogloszenia)) {
		case 1:
			ff(true, false, false);
			break;
		case 2:
			ff(false, true, false);
			break;
		case 3:
			ff(false, false, true);
			break;
		}
	}

	public boolean isCheckboxb() {
		System.out.println("isCheckboxb");
		f();
		return checkboxb;
	}

	public void setCheckboxb(boolean checkboxb) {
		System.out.println("setCheckboxb");
		this.checkboxb = checkboxb;
	}

	public boolean isCheckboxc() {
		System.out.println("isCheckboxc");
		f();
		return checkboxc;
	}

	public void setCheckboxc(boolean checkboxc) {
		System.out.println("setCheckboxc");
		this.checkboxc = checkboxc;
	}

	public boolean isCheckboxa() {
		System.out.println("isCheckboxa");
		f();
		return checkboxa;
	}

	public void setCheckboxa(boolean checkboxa) {
		System.out.println("setCheckboxa");
		this.checkboxa = checkboxa;
	}

	private String ogloszenie;

	public String getOgloszenie() {
		return ogloszenie = numerogloszenia;
	}

	public void setOgloszenie(String ogloszenie) {
		numerogloszenia = ogloszenie;
		// selekty.instancja.ustaw(Integer.valueOf(numerogloszenia));
		// ustaw(Integer.valueOf(numerogloszenia));
		System.out.println("numerogloszenia" + numerogloszenia);
		System.out.println("ogloszenie" + ogloszenie);
		this.ogloszenie = ogloszenie;
	}

	/*
	 * boolean aktywnyprzycisk(String przycisk) {
	 * System.out.println("w aktywny"+numerogloszenia);
	 * selekty.instancja.ustaw(Integer.valueOf(numerogloszenia)); }
	 */
	private String tresc;

	public String getTresc() {
		return tresc;
	}

	public void setTresc(String tresc) {
		this.tresc = tresc;
	}

	public void test() {
		EntityManagerFactory emf = Persistence
				.createEntityManagerFactory("oracle");
		EntityManager em = emf.createEntityManager();
		em.getTransaction().begin();
		Customer rr = new Customer();
		// rr.setCustomerId(22);
		rr.setCustomerName("test" + String.valueOf(wa++));
		/*
		 * ZsmStraznik pp=new ZsmStraznik(); pp.setIlosc(2); pp.setNazwa("ss");
		 */
		em.persist(rr);
		em.getTransaction().commit();
		em.close();
	}

	private String informacja;

	public String getInformacja() {
		this.informacja = zgloszenie.instance.etykieta_przycisku;
		return informacja;
	}

	public void setInformacja(String informacja) {
		this.informacja = informacja;
	}

	private String zm;
	public static zgloszenie instance = new zgloszenie();

	public static zgloszenie zgloszenie() {
		return instance;
	}

	void begin() {
		this.szukanie = true;
		etykieta_przycisku = "Wybierz województwo i miasto";
	}

	public void znajdz() {
		Listy.instancja.zmiana = 0;
		Listy.lista = ogloszenia.bazadanych.bazadanych.instancja
				.pobierzWgWojewodztwaMiasta(
						Listy.instancja.getWybranewojewodztwo(),
						Listy.instancja.getWybranemiasto());
	}

	public static boolean szukanie = true;

	public void setSzukanie(boolean szukanie) {
		this.szukanie = szukanie;
	}

	public boolean isSzukanie() {
		return szukanie;
	}

	public String getZm() {
		zm = this.zmienna;
		return zm;
	}

	public void setZm(String zm) {
		this.zm = zm;
	}

	public static String getZmienna() {
		return zmienna;
	}

	public static void setZmienna(String zmienna) {
		zgloszenie.zmienna = zmienna;
	}

	private boolean komunikat = false;

	public boolean isKomunikat() {
		return komunikat;
	}

	public void setKomunikat(boolean komunikat) {
		this.komunikat = komunikat;
	}

	public ogloszenie getOgl() {
		return ogl;
	}

	public void setOgl(ogloszenie ogl) {
		this.ogl = ogl;
	}

	private ArrayList dataList;

	public void setDataList(ArrayList dataList) {
		this.dataList = dataList;
	}

	@Override
	public List<ZsmStraznik> getListOfStraznik() {
		return super.getListOfStraznik();
	}

	@Override
	public void setListOfStraznik(List<ZsmStraznik> listOfStraznik) {
		super.setListOfStraznik(listOfStraznik);
	}

	public void loadDataList() {

		/*
		 * dataList = new ArrayList();
		 * 
		 * TaskListData data1 = new TaskListData();
		 * data1.setTaskInstanceId(1000l); data1.setActorId("Willy smith");
		 * data1.setTaskNode("In Charge"); data1.setDescription("CR 123456");
		 * 
		 * 
		 * TaskListData data2 = new TaskListData();
		 * data2.setTaskInstanceId(1001l); data2.setActorId("Frank Sinatra");
		 * data2.setTaskNode("Rejected"); data2.setDescription("CR 654321");
		 * 
		 * dataList.add(data1); dataList.add(data2);
		 */

	}

	public List<TaskListData> getDataList() {
		// loadDataList();
		return dataList;
	}

	public static String numerogloszenia = "-1";

	public void spr() {
		System.out.println("aaaaaaa");
	}

	int[] vv() {
		boolean[] checkboxy = { checkboxa, checkboxb, checkboxc };
		String[] t = { "0", "Kluczbork", "opolskie" };
		int[] wartosci = { 0, 0, 0 };
		for (int i = 0; i < checkboxy.length; i++) {
			if (checkboxy[i]) {
				t[0] = String.valueOf(i);
				wartosci[i] = bazadanych.instancja.dodajogloszenie(ogl, t);
			}
		}
		return wartosci;
	}

	private boolean dd;
	
	public boolean isDd() {
		return dd;
	}

	public void setDd(boolean dd) {
		this.dd = dd;
	}

	public void dodajOgloszeniee() {
		popuppanel.instancja.v = false;
		this.ogl.setTresc("aa");this.ogl.setKontakt("ddd");
		int[] y = vv();
		boolean f = false;
		for (int i = 0; i < y.length; i++) {
			if (y[i] == 0) {
				f = true;
				break;
			}
		}
		setDd(true);
		dd=true;
		if (!f) {
			/*popuppanel.instancja.ustaw("Dodawanie ogłoszenia",
					"Dodano pomyślnie ogłoszenie");*/
			popuppanel.instancja.v = true;
			//setDd(true);
			//czysc();
		} else{
			/*popuppanel.instancja.ustaw("Dodawanie ogłoszenia",
					"Wystąpił błąd podczas dodawania ogłoszenia");*/
			popuppanel.instancja.v = true;
			//setDd(true);
			
		}
		System.out.println("zmieniono");
	}

	void czysc() {
		this.ogl.setKontakt("");
		this.ogl.setTresc("");
	}
}
